package com.comac.print.component.app.utils;

import cn.hutool.core.util.StrUtil;

import java.nio.charset.Charset;
import java.util.Base64;

/**
 * 压缩工具
  * @author CQ
  * @date 2025-5-16 09:23:39
  * @description
 **/
public class ZipUtil {

    private ZipUtil(){}

    /**
     * 压缩之后生成为base64编码
     * @param data
     * @return
     */
    public static String zip2Base64(String data){
        if (StrUtil.isBlank(data)){
            return data;
        }
        byte[] gzip = cn.hutool.core.util.ZipUtil.gzip(data.getBytes(Charset.defaultCharset()));
        return Base64.getEncoder().encodeToString(gzip);
    }

    /**
     * 解压缩base64文件
     * @param zipData
     * @return
     */
    public static String unzipBae64(String zipData){
        if (StrUtil.isBlank(zipData)){
            return zipData;
        }
        byte[] decode;
        try {
            decode = Base64.getDecoder().decode(zipData);
        } catch (Exception e) {
            return zipData;
        }
        byte[] bytes1 = cn.hutool.core.util.ZipUtil.unGzip(decode);
        return new String(bytes1, Charset.defaultCharset());
    }

}
